package cn.zero.letaomallspringboot.mapper;

import cn.zero.letaomallspringboot.entity.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface OrderMapper {

    /**
     * 根据ID查询订单
     */
    Order selectById(Long id);

    /**
     * 分页查询订单
     */
    List<Order> selectByPage(@Param("offset") int offset, @Param("size") int size, @Param("params") Map<String, Object> params);

    /**
     * 根据条件查询总记录数
     */
    long countByParams(Map<String, Object> params);

    /**
     * 插入新订单
     */
    int insert(Order order);

    /**
     * 更新订单信息
     */
    int update(Order order);

    /**
     * 根据ID删除订单
     */
    int deleteById(Long id);

    /**
     * 批量删除订单
     */
    int batchDelete(List<Long> ids);

    /**
     * 更新订单状态
     */
    int updateStatus(@Param("id") Long id, @Param("status") String status);

    /**
     * 根据订单状态查询订单
     */
    List<Order> selectByStatus(String status);
}